package com.dd.logistics.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dd.logistics.entity.Inventory;
import com.dd.logistics.entity.InventoryHistory;

import java.util.List;
import java.util.Map;

public interface InventoryService extends IService<Inventory> {
    
    // 分页查询库存
    Page<Inventory> getPage(Integer current, Integer size, String productCode, String productName, String location);
    
    // 更新库存数量
    boolean updateQuantity(String productCode, Integer adjustQuantity);
    
    // 根据商品ID更新库存
    boolean updateQuantityByProductId(Long productId, Integer adjustQuantity);
    
    // 更新库存信息
    boolean updateInfo(Long id, String location, Integer warningThreshold);
    
    // 获取库存历史记录
    List<InventoryHistory> getHistory(String productCode, String startDate, String endDate);
    
    // 获取库存统计信息
    Map<String, Integer> getStats();
    
    // 获取所有库存列表
    List<Inventory> getList();
    
    // 新增库存
    boolean addInventory(Inventory inventory);
    
    // 检查库存是否充足
    boolean checkStock(Long productId, Integer quantity);
    
    /**
     * 删除库存记录
     * @param id 库存ID
     * @return 是否删除成功
     */
    boolean deleteInventory(Long id);
} 